/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package webui;
import limfic.dominio.Ciudad;
import java.util.Comparator;

/**
 * Clase que ordena una lista ciudad por la columna Nombre.
 * Para su funcionamiento implementa la Interfaz Comparator de Java
 * <p>
 * La clase tiene un parametro ordenAsc de tipo boolean que indica si se
 * ordena de forma ascendente o no. Es necesaria para el constructor.
 * </p>
 * <p>
 * El metodo compare() es el que compara y ordena la lista. Forma parte de la
 * interfaz Comparator.
 * </p>
 * @author OpenCodes
 */
public class CompararCiudad implements Comparator {
    private boolean ordenAsc;
    private String campo;
    public boolean isOrden() {
        return ordenAsc;
    }

    public CompararCiudad(String campo,boolean ordenAsc) {
        this.ordenAsc = ordenAsc;
        this.campo = campo;
    }

    

    public void setOrden(boolean orden) {
        this.ordenAsc = orden;
    }

   


    /**
     * @param Recibe dos objetos y los compara.
     * En este caso dos ciudades
     *
     *@return Devuelve el orden
     * Lee la variable ordenAsc y segun su valor ordena de forma ascendente o descendente.
     * Lee la variable campo que sera la columna a ordenar.
     */
    @Override
    public int compare(Object o1, Object o2) {

        Ciudad j1 = (Ciudad) o1;
        Ciudad j2 = (Ciudad) o2;

        if (campo.equals("Nombre")) {

            if (ordenAsc) {
                return j1.getNombre().compareTo(j2.getNombre());
            } else {
                return j2.getNombre().compareTo(j1.getNombre());
            }
        } else {


            //si no se ingreso ningun campo devuelve 0. NO hace nada
            return 0;
        }

    }

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }

}